﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections;
using MigColetaMinMax.Entidades;
using System.Windows.Forms;

namespace MigColetaMinMax.DAO.DAO_SQLServer
{
    public class DAOConsultaSQL
    {

        public DAOConsultaSQL() { }

        public static List<string> ObterNomeDoLeiturista()
        {
            List<string> lst = new List<string>();
            Leiturista leit = new Leiturista();

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterNomeLeiturista");

                if (dtDados.Rows.Count > 0)
                {                    
                    leit.Nome = string.Empty;
                    lst.Add(leit.Nome);
                }

                foreach (DataRow dt in dtDados.Rows)
                {
                    leit.Nome = dt["Leiturista"].ToString();                                            
                    lst.Add(leit.Nome);
                }

            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return lst;
        }

        public static string ObterNomeDoLeituristaMat(string matricula)
        {
            string retorno = string.Empty;
            Leiturista leit = new Leiturista();
            
            Hashtable htParametro = new Hashtable();
            htParametro["@matricula"] = matricula;
            
            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterNomeLeituristaMatricula", htParametro);
                
                foreach (DataRow dt in dtDados.Rows)
                {
                    leit.NomeCompleto = dt["NomeCompleto"].ToString();
                    retorno = leit.NomeCompleto;
                }

            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static string ObterMatricula(string nome)
        {
            string retorno = string.Empty;
            Leiturista leit = new Leiturista();

            Hashtable htParametro = new Hashtable();
            htParametro["@nome"] = nome;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterMatatricula", htParametro);

                foreach (DataRow dt in dtDados.Rows)
                {
                    leit.Matricula = dt["Matricula"].ToString();
                    retorno = leit.Matricula;
                }

            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static DataTable ObterRoteiroRemMes(int remessa,string mes)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@remessa"] = remessa;
            htParametro["@mesfat"] = mes;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterRoteirosRmMes", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }
        
        public static DataTable ObterLeituraRemMes(int remessa, string mes)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@remessa"] = remessa;
            htParametro["@mesfat"] = mes;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterLeituraRmMes", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static DataTable ObterRoteiroMes(string mes)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();            
            htParametro["@mesfat"] = mes;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterRoteiroMes", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static DataTable ObterLeituraMes(string mes)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@mesfat"] = mes;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterLeituraMes", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static DataTable ObterRoteiroLeiturista(string matricula)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@matricula"] = matricula;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterRoteiroLeiturista", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static DataTable ObterLeituraLeiturista(string matricula)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@matricula"] = matricula;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterLeituraLeiturista", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static DataTable ObterRoteiroLeituristaMes(string mes ,string matricula)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@matricula"] = matricula;
            htParametro["@mesfat"] = mes;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterRoteiroLeituristaMes", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static DataTable ObterLeituraLeituristaMes(string mes, string matricula)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@matricula"] = matricula;
            htParametro["@mesfat"] = mes;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterLeituraLeituristaMes", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }
                
        public static DataTable ObterRoteiroLeituristaRemMes(string mes, int remessa, string matricula)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@matricula"] = matricula;
            htParametro["@mesfat"] = mes;
            htParametro["@remessa"] = remessa;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterRoteiroLeituristaRemMes", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }

        public static DataTable ObterLeituraLeituristaRemMes(string mes, int remessa, string matricula)
        {
            DataTable retorno;
            Hashtable htParametro = new Hashtable();
            htParametro["@matricula"] = matricula;
            htParametro["@mesfat"] = mes;
            htParametro["@remessa"] = remessa;

            try
            {
                SQLMSDataAccess dataAccess = new SQLMSDataAccess();
                DataTable dtDados = dataAccess.ExecutaConsulta("ObterLeituraLeituristaRemMes", htParametro);
                retorno = dtDados;
            }
            catch (Exception ex)
            {
                throw new csException(ex);
            }

            return retorno;
        }
    }
}
